(function() {
    function e() {
        return function() {}
    }
    function x(c) {
        return function() {
            return this[c]
        }
    }
    var z = {};
    z.o = {
        version: "1.2.12.1-130902",
        key: "",
        ub: [116.011934, 39.661271, 116.782984, 40.216496],
        zb: "http://restapi.amap.com",
        Qb: "http://webapi.amap.com",
        Jj: 3,
        Fe: "http://webrd0{1,2,3,4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x=[x]&y=[y]&z=[z]",
        Xj: "http://webst0{1,2,3,4}.is.autonavi.com/appmaptile?style=6&x=[x]&y=[y]&z=[z]",
        mh: "http://wprd0{1,2,3,4}.is.autonavi.com/appmaptile?style=7&x=[x]&y=[y]&z=[z]",
        oh: "http://vector.amap.com"
    };
    window.amap.maps._load_(function(c) {
        z.o.key = c[0];
        z.o.ub = c[1] || z.o.ub;
        z.o.Qb = c[2];
        z.o.Jj = c[3];
        z.o.version = c[4];
        z.o.xg = c[5]
    });
    z.F = e();
    z.F.extend = function(c) {
        function d() {}
        function f() {
            this.t && this.t.apply(this, arguments)
        }
        d.prototype = this.prototype;
        var g = new d;
        g.constructor = f;
        f.prototype = g;
        for (var h in this) this.hasOwnProperty(h) && "prototype" !== h && (f[h] = this[h]);
        c.Fa && (z.extend(f, c.Fa), delete c.Fa);
        c.ka && (z.extend.apply(null, [g].concat(c.ka)), delete c.ka);
        c.a && g.a && (c.a = z.extend({},
        g.a, c.a));
        z.extend(g, c);
        c.toString && (g.toString = c.toString);
        f.Hk = this.prototype;
        return f
    };
    z.extend = function(c) {
        var d = Array.prototype.slice.call(arguments, 1),
        f,
        g,
        h,
        k;
        g = 0;
        for (h = d.length; g < h; g++) for (f in k = d[g] || {},
        k) k.hasOwnProperty(f) && (c[f] = k[f]);
        return c
    };
    z.F.W = function(c) {
        z.extend(this.prototype, c)
    };
    z.F.ca = function(c) {
        for (var d in c) {
            var f = c[d];
            this.prototype[d] && (this.prototype[f] = this.prototype[d])
        }
    }; (function() {
        var c = !!window.ActiveXObject,
        d = c && !window.XMLHttpRequest,
        f = c && !document.querySelector,
        g = c && !document.addEventListener,
        h = navigator.userAgent.toLowerCase(),
        k = -1 !== h.indexOf("webkit"),
        l = -1 !== h.indexOf("chrome"),
        m = -1 !== h.indexOf("firefox"),
        n = -1 !== h.indexOf("android"),
        h = -1 !== h.search("android [23]"),
        p = "undefined" !== typeof orientation,
        u = window.navigator && window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints,
        q = "devicePixelRatio" in window && 1 < window.devicePixelRatio || "matchMedia" in 
        window && window.matchMedia("(min-resolution:144dpi)") && window.matchMedia("(min-resolution:144dpi)").matches,
        r = document.documentElement,
        v = c && "transition" in r.style,
        s = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix,
        t = "MozPerspective" in r.style,
        w = "OTransition" in r.style,
        y = v || s || t || w,
        B = function() {
            if (u || "ontouchstart" in r) return ! 0;
            var c = document.createElement("div"),
            d = !1;
            if (!c.setAttribute) return ! 1;
            c.setAttribute("ontouchstart", "return;");
            "function" === typeof c.ontouchstart && (d = !0);
            c.removeAttribute("ontouchstart");
            return d
        } ();
        z.h = {
            Ub: c,
            Og: d,
            uj: f,
            Vb: g,
            ph: k,
            Ni: n,
            fd: h,
            Ok: l,
            $i: m,
            bl: v,
            sk: s,
            Wk: t,
            gl: w,
            fb: y,
            Xg: p,
            Zg: p && k,
            Ij: p && s,
            Yg: p && window.opera,
            ba: B,
            sd: u,
            Wj: q,
            Bj: !!document.createElementNS && !!document.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect,
            De: !!document.createElement("canvas").getContext
        }
    })();
    z.D = {
        d: function(c, d, f, g) {
            var h = this.ab = this.ab || {};
            h[c] = h[c] || [];
            h[c].push({
                Tb: d,
                yc: f || this,
                Nj: g
            });
            return this
        },
        ha: function(c) {
            var d = this.ab;
            return d && c in d && 0 < d[c].length
        },
        m: function(c, d, f) {
            if (!this.ha(c)) return this;
            for (var g = this.ab, h = 0; h < g[c].length; h++) if (g[c][h].Tb === d && (!f || g[c][h].yc === f)) {
                g[c].splice(h, 1);
                break
            }
            return this
        },
        c: function(c, d) {
            if (!this.ha(c)) return this;
            for (var f = z.extend({
                type: c
            },
            d), g = [].concat(this.ab[c]), h = 0; h < g.length; h++) g[h].Tb && (g[h].Tb.call(g[h].yc || this, f), g[h].Nj && 
            this.ab[c].splice(h, 1));
            return this
        },
        Pk: function(c) {
            c ? this.ab[c] && (this.ab[c] = null) : this.ab = null;
            return this
        }
    };
    z.extend(z.D, {
        on: z.D.d,
        off: z.D.m,
        emit: z.D.c
    });
    z.Ta = z.extend({
        Kj: z.o.Qb + "/maps/modules?v=" + z.o.version + "&key=" + z.o.key,
        Ui: {},
        status: {
            We: 0,
            LOADING: 1,
            Ze: 2
        },
        Hc: {},
        we: function(c) {
            this.Hc[c] || (this.Hc[c] = this.status.We);
            return this.Hc[c]
        },
        yj: function(c) {
            return this.we(c) === this.status.We
        },
        Rg: function(c) {
            return this.we(c) === this.status.LOADING
        },
        Wb: function(c) {
            return this.we(c) === this.status.Ze
        },
        fk: function(c) {
            this.yj(c) && (this.Hc[c] = this.status.LOADING)
        },
        ek: function(c) {
            this.Rg(c) && (this.Hc[c] = this.status.Ze)
        },
        load: function(c, d, f) {
            if (c) {
                c instanceof
                Array || (c = [c]);
                c = this.pk(c);
                var g = this.Yi(c),
                h = this.Zi(g);
                0 < g.length ? (this.lk(c, d), 0 < h.length && this.Ej(h)) : f && "function" === typeof d && d()
            }
        },
        pk: function(c) {
            function d(c, h) {
                f[c] = g++;
                var k = h[c];
                if (k && 0 < k.length) for (var p = k.length - 1; 0 <= p; p--) d(k[p], h)
            }
            for (var f = {},
            g = 0, h = c.length - 1; 0 <= h; h--) d(c[h], this.Ui);
            c = [];
            for (var k in f) c.push(k);
            c.sort(function(c, d) {
                return f[d] - f[c]
            });
            return c
        },
        Yi: function(c) {
            for (var d = [], f = 0; f < c.length; f++) this.Wb(c[f]) || d.push(c[f]);
            return d
        },
        Zi: function(c) {
            for (var d = [], f = 0; f < 
            c.length; f++) this.Rg(c[f]) || d.push(c[f]);
            return d
        },
        lk: function(c, d) {
            function f() {
                for (var g = 0; g < c.length; g++) if (!this.Wb(c[g])) return;
                "function" === typeof d && d();
                this.m("moduleLoaded", f, this)
            }
            this.d("moduleLoaded", f, this)
        },
        Ej: function(c) {
            for (var d = 0; d < c.length; d++) this.fk(c[d]);
            d = document;
            c = this.Kj + "&m=" + c.join(",");
            if (d.body) {
                var f = d.createElement("script");
                f.charset = "utf-8";
                f.src = c;
                d.body.appendChild(f)
            } else d.write('<script src="' + c + '" type="text/javascript" charset="utf-8">\x3c/script>')
        },
        xd: function(c, 
        d) {
            eval(d);
            this.ek(c);
            this.c("moduleLoaded")
        }
    },
    z.D);
    window._jsload_ = function(c, d) {
        z.Ta.xd(c, d)
    };
    z.Va = z.F.extend({
        t: function(c) {
            this.n = c
        },
        enable: function() {
            this.$a || (this.$a = !0, this.cb())
        },
        disable: function() {
            this.$a && (this.$a = !1, this.jb())
        },
        enabled: function() {
            return !! this.$a
        }
    });
    z.k = z.F.extend({
        t: function(c, d, f) {
            if (isNaN(c) || isNaN(d)) throw "Invalid Object: Pixel(" + c + ", " + d + ")";
            this.x = f ? Math.round(c) : Number(c);
            this.y = f ? Math.round(d) : Number(d)
        },
        rj: x("x"),
        sj: x("y"),
        add: function(c, d) {
            return new z.k(this.x + c.x, this.y + c.y, d)
        },
        q: function(c, d) {
            return new z.k(this.x - c.x, this.y - c.y, d)
        },
        R: function(c, d) {
            return new z.k(this.x / c, this.y / c, d)
        },
        S: function(c, d) {
            return new z.k(this.x * c, this.y * c, d)
        },
        Z: function(c) {
            var d = c.x - this.x;
            c = c.y - this.y;
            return Math.sqrt(d * d + c * c)
        },
        floor: function() {
            return new z.k(Math.floor(this.x), 
            Math.floor(this.y))
        },
        round: function() {
            return new z.k(this.x, this.y, !0)
        },
        Sb: function(c) {
            return c instanceof z.k && this.x == c.x && this.y == c.y
        },
        toString: function() {
            return this.x + "," + this.y
        }
    });
    z.k.ca({
        rj: "getX",
        sj: "getY",
        add: "add",
        q: "subtract",
        R: "divideBy",
        S: "multiplyBy",
        Z: "distance",
        Sb: "equals",
        toString: "toString"
    });
    z.r = z.F.extend({
        t: function(c, d, f) {
            var g = parseFloat(d),
            h = parseFloat(c);
            if (isNaN(c) || isNaN(d)) throw "Invalid Object: LngLat(" + h + ", " + g + ")"; ! 0 !== f && (g = Math.max(Math.min(g, 90), -90), h = (h + 180) % 360 + ( - 180 > h || 180 === h ? 180: -180));
            this.f = z.e.qe(g, 6);
            this.i = z.e.qe(h, 6)
        },
        ve: x("i"),
        ue: x("f"),
        add: function(c, d) {
            return new z.r(this.i + c.i, this.f + c.f, d)
        },
        q: function(c, d) {
            return new z.r(this.i - c.i, this.f - c.f, d)
        },
        R: function(c, d) {
            return new z.r(this.i / c, this.f / c, d)
        },
        S: function(c, d) {
            return new z.r(this.i * c, this.f * c, d)
        },
        Z: function(c) {
            if (! (c instanceof
            z.r)) return ! 1;
            var d = Math.PI / 180,
            f = Math.sin((c.f - this.f) * d / 2),
            g = Math.sin((c.i - this.i) * d / 2);
            c = f * f + g * g * Math.cos(this.f * d) * Math.cos(c.f * d);
            return 12756274 * Math.atan2(Math.sqrt(c), Math.sqrt(1 - c))
        },
        offset: function(c, d) {
            if (isNaN(c) || isNaN(d)) return ! 1;
            var f = 2 * Math.asin(Math.sin(Math.round(c) / 12756274) / Math.cos(this.f * Math.PI / 180)),
            f = this.i + 180 * f / Math.PI,
            g = 2 * Math.asin(Math.round(d) / 12756274);
            return new z.r(f, this.f + 180 * g / Math.PI)
        },
        Sb: function(c) {
            return c instanceof z.r ? 1E-9 >= Math.max(Math.abs(this.f - c.f), 
            Math.abs(this.i - c.i)) : !1
        },
        toString: function() {
            return this.i + "," + this.f
        }
    });
    z.r.ca({
        ve: "getLng",
        ue: "getLat",
        add: "add",
        q: "subtract",
        R: "divideBy",
        S: "multiplyBy",
        Z: "distance",
        offset: "offset",
        Sb: "equals",
        toString: "toString"
    });
    z.Ma = z.F.extend({
        t: function() {
            if (2 == arguments.length) this.aa = arguments[0],
            this.$ = arguments[1];
            else if (4 == arguments.length) this.aa = new z.r(arguments[0], arguments[1]),
            this.$ = new z.r(arguments[2], arguments[3]);
            else throw "Invalid Object: Bounds(" + arguments.join(",") + ")";
        },
        oj: x("aa"),
        gj: x("$"),
        hj: function() {
            return new z.r(this.aa.i, this.$.f, !0)
        },
        nj: function() {
            return new z.r(this.$.i, this.aa.f, !0)
        },
        contains: function(c) {
            var d = this.aa,
            f = this.$,
            g;
            c instanceof z.Ma ? (g = c.aa, c = c.$) : g = c;
            return g.f >= d.f && c.f <= 
            f.f && g.i >= d.i && c.i <= f.i
        },
        Qg: function(c) {
            var d = this.aa,
            f = this.$,
            g = c.aa;
            c = c.$;
            var h = c.i >= d.i && g.i <= f.i;
            return c.f >= d.f && g.f <= f.f && h
        },
        va: function() {
            return this.aa.add(this.$, !0).R(2)
        },
        extend: function(c) {
            this.aa.i = Math.min(this.aa.i, c.i);
            this.aa.f = Math.min(this.aa.f, c.f);
            this.$.i = Math.max(this.$.i, c.i);
            this.$.f = Math.max(this.$.f, c.f);
            return this
        },
        qk: function(c) {
            return this.extend(c.aa).extend(c.$)
        },
        toString: function() {
            return this.aa.toString() + ";" + this.$.toString()
        }
    });
    z.Ma.ca({
        oj: "getSouthWest",
        gj: "getNorthEast",
        hj: "getNorthWest",
        nj: "getSouthEast",
        contains: "contains",
        Qg: "intersects",
        va: "getCenter"
    });
    z.Na = z.F.extend({
        t: function() {
            if (2 == arguments.length) this.s = arguments[0],
            this.u = arguments[1];
            else if (1 == arguments.length && arguments[0] instanceof Array || 4 == arguments.length) {
                var c = arguments[0] instanceof Array ? arguments[0] : arguments;
                this.s = new z.k(c[0], c[1]);
                this.u = new z.k(c[2], c[3])
            } else throw "Invalid Object: PixelBounds(" + arguments.join(",") + ")";
        },
        va: function(c) {
            return new z.k((this.s.x + this.u.x) / 2, (this.s.y + this.u.y) / 2, c)
        },
        contains: function(c) {
            var d;
            c instanceof z.Na ? (d = c.s, c = c.u) : d = c;
            return d.x > 
            this.s.x && c.x < this.u.x && d.y > this.s.y && c.y < this.u.y
        },
        Qg: function(c) {
            var d = this.s,
            f = this.u,
            g = c.s;
            c = c.u;
            var h = c.y >= d.y - 20 && g.y <= f.y + 20;
            return c.x >= d.x - 20 && g.x <= f.x + 20 && h
        },
        toString: function() {
            return this.s + ";" + this.u
        }
    });
    z.Ya = z.F.extend({
        t: function(c, d, f) {
            if (isNaN(c) || isNaN(d)) throw "Invalid Object: Size(" + c + ", " + d + ")";
            this.width = f ? Math.round(c) : Number(c);
            this.height = f ? Math.round(d) : Number(d)
        },
        Dc: x("width"),
        Cc: x("height"),
        ea: function() {
            return new z.k(this.Dc(), this.Cc())
        },
        contains: function(c) {
            return Math.abs(c.x) <= Math.abs(this.width) && Math.abs(c.y) <= Math.abs(this.height)
        },
        Sb: function(c) {
            return c instanceof z.Ya && this.width == c.width && this.height == c.height
        },
        toString: function() {
            return this.Dc() + "," + this.Cc()
        }
    });
    z.Ya.ca({
        Dc: "getWidth",
        Cc: "getHeight",
        toString: "toString"
    });
    z.Sc = z.F.extend({
        t: function(c, d, f, g) {
            this.kf = c;
            this.rf = d;
            this.sf = f;
            this.Bf = g
        },
        transform: function(c, d) {
            return this.mg(c.Qk(), d)
        },
        mg: function(c, d) {
            d = d || 1;
            c.x = d * (this.kf * c.x + this.rf);
            c.y = d * (this.sf * c.y + this.Bf);
            return c
        },
        rk: function(c, d) {
            d = d || 1;
            return new z.k((c.x / d - this.rf) / this.kf, (c.y / d - this.Bf) / this.sf)
        }
    });
    z.Xa = {};
    z.Xa.wh = {
        Hd: 85.0511287798,
        O: function(c) {
            var d = Math.PI / 180,
            f = this.Hd,
            f = Math.max(Math.min(f, c.f), -f);
            c = c.i * d;
            d = Math.log(Math.tan(Math.PI / 4 + f * d / 2));
            return new z.k(c, d)
        },
        lb: function(c, d) {
            var f = 180 / Math.PI;
            return new z.r(c.x * f, (2 * Math.atan(Math.exp(c.y)) - Math.PI / 2) * f, d)
        }
    };
    z.la = {};
    z.la.Nc = {
        Dj: function(c, d) {
            var f = this.yb.O(c),
            g = this.scale(d);
            return this.Lc.mg(f, g)
        },
        Tj: function(c, d, f) {
            d = this.scale(d);
            c = this.Lc.rk(c, d);
            return this.yb.lb(c, f)
        },
        O: function(c) {
            return this.yb.O(c)
        },
        scale: function(c) {
            return 256 * Math.pow(2, c)
        }
    };
    z.la.Te = z.extend({},
    z.la.Nc, {
        code: "EPSG:3857",
        yb: z.Xa.wh,
        Lc: new z.Sc(0.5 / Math.PI, 0.5, -0.5 / Math.PI, 0.5),
        O: function(c) {
            return this.yb.O(c).S(6378137)
        }
    });
    z.la.zk = z.extend({},
    z.la.Te, {
        code: "EPSG:900913"
    });
    z.Xa.$e = {
        O: function(c) {
            return new z.k(c.i, c.f)
        },
        lb: function(c, d) {
            return new z.r(c.x, c.y, d)
        }
    };
    z.Xa.bf = {
        Hd: 85.0840591556,
        Jd: 6356752.3142,
        Id: 6378137,
        O: function(c) {
            var d = Math.PI / 180,
            f = this.Hd,
            g = Math.max(Math.min(f, c.f), -f),
            h = this.Id,
            f = this.Jd;
            c = c.i * d * h;
            d *= g;
            h = f / h;
            h = Math.sqrt(1 - h * h);
            g = h * Math.sin(d);
            g = Math.pow((1 - g) / (1 + g), 0.5 * h);
            d = -f * Math.log(Math.tan(0.5 * (0.5 * Math.PI - d)) / g);
            return new z.k(c, d)
        },
        lb: function(c, d) {
            for (var f = 180 / Math.PI, g = this.Id, h = this.Jd, k = c.x * f / g, g = h / g, g = Math.sqrt(1-g * g), h = Math.exp( - c.y / h), l = Math.PI / 2 - 2 * Math.atan(h), m = 15, n = 0.1; 1E-7 < Math.abs(n) && 0 < --m;) n = g * Math.sin(l),
            n = Math.PI /2 - 2 * Math.atan(h * Math.pow((1 - n) / (1 + n), 0.5 * g)) - l,
            l += n;
            return new z.r(k, l * f, d)
        }
    };
    z.la.qh = z.extend({},
    z.la.Nc, {
        code: "EPSG:3395",
        yb: z.Xa.bf,
        Lc: function() {
            var c = z.Xa.bf;
            return new z.Sc(0.5 / (Math.PI * c.Id), 0.5, -0.5 / (Math.PI * c.Jd), 0.5)
        } ()
    });
    z.la.rh = z.extend({},
    z.la.Nc, {
        code: "EPSG:4326",
        yb: z.Xa.$e,
        Lc: new z.Sc(1 / 360, 0.5, -1 / 360, 0.5)
    });
    z.la.Ek = z.extend({},
    z.la.Nc, {
        yb: z.Xa.$e,
        Lc: new z.Sc(1, 0, 1, 0)
    });
    z.b = {
        get: function(c) {
            return "string" === typeof c ? document.getElementById(c) : c
        },
        hb: function(c, d) {
            var f = c.style[d]; ! f && c.currentStyle && (f = c.currentStyle[d]);
            f && "auto" !== f || !document.defaultView || (f = (f = document.defaultView.getComputedStyle(c, null)) ? f[d] : null);
            f && "auto" !== f || "height" !== d || (f = c.clientHeight + "px");
            f && "auto" !== f || "width" !== d || (f = c.clientWidth + "px");
            return "auto" === f ? null: f
        },
        Kg: function(c) {
            return new z.Ya(c.clientWidth || document.body.clientWidth, c.clientHeight || (z.h.Ub ? "CSS1Compat" == document.compatMode ? 
            document.documentElement.clientHeight: document.body.clientHeight: self.innerHeight), !0)
        },
        Lg: function(c) {
            var d = 0,
            f = 0,
            g = c,
            h = document.body,
            k = document.documentElement,
            l,
            m = z.h.uj;
            do {
                d += g.offsetTop || 0;
                f += g.offsetLeft || 0;
                d += parseInt(z.b.hb(g, "borderTopWidth"), 10) || 0;
                f += parseInt(z.b.hb(g, "borderLeftWidth"), 10) || 0;
                l = z.b.hb(g, "position");
                if (g.offsetParent === h && "absolute" === l) break;
                if ("fixed" === l) {
                    d += h.scrollTop || k.scrollTop || 0;
                    f += h.scrollLeft || k.scrollLeft || 0;
                    break
                }
                g = g.offsetParent
            }
            while (g);
            g = c;
            do {
                if (g === h) break;
                d -= g.scrollTop || 0;
                f -= g.scrollLeft || 0;
                z.b.Xi() || !z.h.ph && !m || (f += g.scrollWidth - g.clientWidth, m && ("hidden" !== z.b.hb(g, "overflow-y") && "hidden" !== z.b.hb(g, "overflow")) && (f += 17));
                g = g.parentNode
            }
            while (g);
            return new z.k(f, d)
        },
        ld: function(c, d) {
            var f = new z.k(c.pageX ? c.pageX: c.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, c.pageY ? c.pageY: c.clientY + document.body.scrollTop + document.documentElement.scrollTop);
            return d ? f.q(z.b.Lg(d)) : f
        },
        Xi: function() {
            z.b.Lh || (z.b.Lh = !0, z.b.Kh = "ltr" === z.b.hb(document.body, 
            "direction"));
            return z.b.Kh
        },
        create: function(c, d, f) {
            c = document.createElement(c);
            f && (c.className = f);
            d && d.appendChild(c);
            return c
        },
        ne: e(),
        Dg: e(),
        tj: function(c, d) {
            return 0 < c.className.length && RegExp("(^|\\s)" + d + "(\\s|$)").test(c.className)
        },
        ua: function(c, d) {
            z.b.tj(c, d) || (c.className += (c.className ? " ": "") + d)
        },
        La: function(c, d) {
            c.className = c.className.replace(/(\S+)\s*/g, 
            function(c, g) {
                return g === d ? "": c
            }).replace(/(^\s+|\s+$)/, "")
        },
        Kc: function(c, d) {
            if ("opacity" in c.style) c.style.opacity = d;
            else if ("filter" in 
            c.style) {
                var f = !1;
                try {
                    f = c.filters.item("DXImageTransform.Microsoft.Alpha")
                } catch(g) {}
                d = Math.round(100 * d);
                f ? (f.Ak = 100 !== d, f.Opacity = d) : c.style.filter += " progid:DXImageTransform.Microsoft.Alpha(opacity=" + d + ")"
            }
        },
        Ne: function(c) {
            for (var d = document.documentElement.style, f = 0; f < c.length; f++) if (c[f] in d) return c[f];
            return ! 1
        },
        nd: function(c) {
            var d = z.h.sk;
            return "translate" + (d ? "3d": "") + "(" + c.x + "px," + c.y + "px" + ((d ? ",0": "") + ")")
        },
        mj: function(c, d) {
            return z.b.nd(d.add(d.S( - 1 * c))) + (" scale(" + c + ") ")
        },
        B: function(c, 
        d, f) {
            c.$d = d; ! f && z.h.fb ? (d = z.b.nd(d), f = c.style[z.b.Ha].split("rotate"), 1 < f.length ? (f[0] = d, c.style[z.b.Ha] = f.join("rotate")) : c.style[z.b.Ha] = d, z.h.Ij && (c.style.WebkitBackfaceVisibility = "hidden")) : (c.style.left = d.x + "px", c.style.top = d.y + "px")
        },
        Ia: function(c) {
            c.$d || (c.$d = new z.k(parseInt(c.style.left, 10), parseInt(c.style.top, 10)));
            return c.$d
        },
        il: function(c, d) {
            c = c instanceof Array ? c: [c];
            for (var f = 0; f < c.length; f++) c[f].style.cssText = d
        },
        Zj: function(c, d) {
            c = c instanceof Array ? c: [c];
            for (var f = 0; f < c.length; f++) for (var g in d) c[f].style[g] = 
            d[g];
            return this
        },
        rotate: function(c, d) {
            var f = 0,
            g = 0;
            if (f = z.b.Ha) g = c.style[f],
            g = g.replace(/rotate\(.*\)\s/, ""),
            g = g.replace(/rotate\(.*\)/, ""),
            c.style[f] = g + (" rotate(" + d + "deg)");
            else if (z.h.Ub) {
                c.style.filter = 'progid:DXImageTransform.Microsoft.Matrix(sizingmethod="auto expand")';
                var g = Math.cos(d * Math.PI / 180),
                f = Math.sin(d * Math.PI / 180),
                h = c.filters.item(0);
                h.M11 = h.M22 = g;
                h.M12 = -(h.M21 = f)
            }
        }
    };
    (function() {
        var c = z.b.Ne(["userSelect", "WebkitUserSelect", "OUserSelect", "MozUserSelect", "msUserSelect"]);
        z.extend(z.b, {
            ne: function() {
                z.g.d(window, "selectstart", z.g.preventDefault);
                if (c) {
                    var d = document.documentElement.style;
                    this.ug = d[c];
                    d[c] = "none"
                }
            },
            Dg: function() {
                z.g.m(window, "selectstart", z.g.preventDefault);
                c && (document.documentElement.style[c] = this.ug, delete this.ug)
            },
            Wi: function() {
                z.g.d(window, "dragstart", z.g.preventDefault)
            },
            Tk: function() {
                z.g.m(window, "dragstart", z.g.preventDefault)
            }
        })
    })();
    z.b.Ha = z.b.Ne(["transform", "WebkitTransform", "OTransform", "MozTransform", "msTransform"]);
    z.b.xa = z.b.Ne(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]);
    z.b.Rc = "webkitTransition" === z.b.xa || "OTransition" === z.b.xa ? z.b.xa + "End": "transitionend";
    z.utils = {
        createDom: z.b.create,
        setCss: z.b.Zj,
        getStyle: z.b.hb,
        getMousePosition: z.b.ld,
        addClass: z.b.ua,
        removeClass: z.b.La
    };
    z.g = {
        d: function(c, d, f, g) {
            function h(d) {
                return f.call(g || c, d || window.event, m)
            }
            var k = z.e.kb(f),
            l = d + k;
            if (c[l]) return this;
            var m = d;
            z.h.$i && "mousewheel" == d && (d = "DOMMouseScroll");
            if (z.h.Ub && ("mouseover" == d || "mouseout" == d)) {
                var n = h;
                d = "mouseover" == d ? "mouseenter": "mouseleave";
                h = function() {
                    n()
                }
            }
            if (z.h.sd && 0 === d.indexOf("touch")) return this.Ji(c, d, h, k);
            z.h.ba && ("dblclick" === d && this.Hi) && this.Hi(c, h, k);
            "addEventListener" in c ? c.addEventListener(d, h, !1) : "attachEvent" in c ? c.attachEvent("on" + d, h) : c["on" + d] = h;
            f[l] = 
            h;
            return this
        },
        m: function(c, d, f) {
            var g = z.e.kb(f),
            h = d + g,
            k = f[h];
            z.h.Vk && "mousewheel" == d && (d = "DOMMouseScroll"); ! z.h.Ub || "mouseover" != d && "mouseout" != d || (d = "mouseover" == d ? "mouseenter": "mouseleave");
            z.h.sd && -1 < d.indexOf("touch") ? this.Vj(c, d, g) : z.h.ba && "dblclick" === d && this.Uj ? this.Uj(c, g) : "removeEventListener" in c ? c.removeEventListener(d, k, !1) : "detachEvent" in c && -1 == d.indexOf("touch") ? k && c.detachEvent("on" + d, k) : c["on" + d] = null;
            f[h] = null;
            return this
        },
        kl: function(c, d) {
            var f = document.createEvent("MouseEvents");
            f.initMouseEvent(c, !0, !0, window, 1, d.screenX, d.screenY, d.clientX, d.clientY, !1, !1, !1, !1, 0, null);
            d.target.dispatchEvent(f)
        },
        stopPropagation: function(c) {
            c.stopPropagation ? c.stopPropagation() : c.cancelBubble = !0;
            return this
        },
        preventDefault: function(c) {
            c.preventDefault ? c.preventDefault() : c.returnValue = !1;
            return this
        },
        stop: function(c) {
            return z.g.preventDefault(c).stopPropagation(c)
        },
        Sk: function(c) {
            for (var d = z.g.stopPropagation, f = z.P.Eb.length - 1; 0 <= f; f--) z.g.d(c, z.P.Eb[f], d);
            return z.g.d(c, "click", d).d(c, "dblclick", 
            d)
        },
        Ik: function(c, d) {
            var f = d.relatedTarget;
            if (!f) return ! 0;
            try {
                for (; f && f !== el;) f = f.parentNode
            } catch(g) {
                return ! 1
            }
            return f !== el
        },
        ld: function(c, d) {
            var f = document.body,
            g = document.documentElement,
            f = new z.k(c.pageX ? c.pageX: c.clientX + f.scrollLeft + g.scrollLeft, c.pageY ? c.pageY: c.clientY + f.scrollTop + g.scrollTop);
            return d ? f.q(z.b.Lg(d)) : f
        },
        zj: function(c) {
            return 1 === c.which || 0 === c.button || 1 === c.button
        }
    };
    z.extend(z.utils, {
        stopPropagation: z.g.stopPropagation,
        preventDefault: z.g.preventDefault,
        getMousePosition: z.g.ld
    });
    z.event = {
        addDomListener: function(c, d, f, g) {
            z.g.d(c, d, f, g);
            return new z.Pc(0, c, d, f, g)
        },
        addDomListenerOnce: e(),
        addListener: function(c, d, f, g) {
            z.D.d.call(c, d, f, g);
            return new z.Pc(1, c, d, f, g)
        },
        addListenerOnce: function(c, d, f, g) {
            z.D.d.call(c, d, f, g, !0);
            return new z.Pc(1, c, d, f, g)
        },
        clearInstanceListeners: e(),
        clearListeners: e(),
        removeListener: function(c) { ! c instanceof z.Pc || (0 === c.type ? z.g.m(c.Ce, c.Eg, c.Ng) : 1 === c.type && (c.Ce.ha = z.D.ha, z.D.m.call(c.Ce, c.Eg, c.Ng)))
        },
        trigger: function(c, d) {
            c.ha = z.D.ha;
            var f = Array.prototype.slice.call(arguments, 
            1);
            z.D.c.apply(c, f)
        }
    };
    z.Pc = z.F.extend({
        t: function(c, d, f, g, h) {
            this.type = c;
            this.Ce = d;
            this.Eg = f;
            this.Ng = g;
            this.yc = h
        }
    });
    z.P = z.F.extend({
        ka: z.D,
        Fa: {
            Eb: z.h.ba ? ["touchstart", "mousedown"] : ["mousedown"],
            Se: {
                mousedown: "mouseup",
                touchstart: "touchend",
                MSPointerDown: "touchend"
            },
            Qc: {
                mousedown: "mousemove",
                touchstart: "touchmove",
                MSPointerDown: "touchmove"
            },
            hf: 15
        },
        a: {},
        t: function(c, d, f) {
            this.Md = c;
            this.Ld = d || c;
            this.hi = f && !z.h.sd
        },
        enable: function() {
            if (!this.$a) {
                for (var c = z.P.Eb.length - 1; 0 <= c; c--) z.g.d(this.Ld, z.P.Eb[c], this.Uf, this);
                this.$a = !0
            }
        },
        disable: function() {
            if (this.$a) {
                for (var c = z.P.Eb.length - 1; 0 <= c; c--) z.g.m(this.Ld, z.P.Eb[c], 
                this.Uf, this);
                this.Aa = this.$a = !1
            }
        },
        Uf: function(c) {
            if ((z.h.ba || !c.shiftKey) && (z.g.zj(c) || c.touches) && (z.g.stopPropagation(c), !z.P.Cf)) if (z.b.Wi(), z.b.ne(), this.de = !0, c.touches && 1 < c.touches.length) this.de = !1,
            clearTimeout(this.Pf);
            else {
                var d = c.touches && 1 === c.touches.length ? c.touches[0] : c,
                f = d.target;
                z.h.ba && "a" === f.tagName.toLowerCase() && z.b.ua(f, "amap-active");
                this.Aa = !1;
                this.Rf || (this.xi = new z.k(d.clientX, d.clientY), this.qb = this.Qa = z.b.Ia(this.Md), c.touches && (1 === c.touches.length && z.h.ba && this.hi) && 
                (this.Pf = setTimeout(z.e.bind(function() { (this.Qa && this.Qa.Z(this.qb) || 0) < z.P.hf && (this.de = !1, this.Wd(), this.hg("contextmenu", d))
                },
                this), 1E3)), z.g.d(document, z.P.Qc[c.type], this.Zf, this), z.g.d(document, z.P.Se[c.type], this.Wd, this))
            }
        },
        Zf: function(c) {
            if (! (c.touches && 1 < c.touches.length)) {
                var d = c.touches && 1 === c.touches.length ? c.touches[0] : c,
                d = (new z.k(d.clientX, d.clientY)).q(this.xi);
                if (d.x || d.y) z.g.preventDefault(c),
                this.Aa || (this.c("dragstart"), this.Aa = !0, this.qb = z.b.Ia(this.Md).q(d), z.h.ba || (z.b.ne(), 
                this.ti())),
                this.Qa = this.qb.add(d),
                this.Rf = !0,
                z.e.vc(this.dc),
                this.dc = z.e.wd(this.Ca, this, !0, this.Ld)
            }
        },
        Ca: function() {
            this.c("predrag");
            z.b.B(this.Md, this.Qa);
            this.c("drag")
        },
        Wd: function(c) {
            var d;
            clearTimeout(this.Pf);
            if (this.de && c.changedTouches) {
                c = c.changedTouches[0];
                var f = c.target,
                g = this.Qa && this.Qa.Z(this.qb) || 0;
                "a" === f.tagName.toLowerCase() && z.b.La(f, "amap-active");
                g < z.P.hf && (d = c)
            }
            z.h.ba || (z.b.Dg(), this.si());
            for (var h in z.P.Qc) z.P.Qc.hasOwnProperty(h) && (z.g.m(document, z.P.Qc[h], this.Zf), z.g.m(document, 
            z.P.Se[h], this.Wd));
            this.Aa && (z.e.vc(this.dc), this.c("dragend"));
            this.Rf = !1;
            d && (this.Aa = !1, this.hg("click", d))
        },
        ti: function() {
            z.b.ua(document.body, "amap-dragging")
        },
        si: function() {
            z.b.La(document.body, "amap-dragging")
        },
        hg: function(c, d) {
            var f = document.createEvent("MouseEvents");
            f.initMouseEvent(c, !0, !0, window, 1, d.screenX, d.screenY, d.clientX, d.clientY, !1, !1, !1, !1, 0, null);
            d.target.dispatchEvent(f)
        }
    });
    z.e = {
        bind: function(c, d) {
            var f = 2 < arguments.length ? Array.prototype.slice.call(arguments, 2) : null;
            return function() {
                return c.apply(d, f || arguments)
            }
        },
        Pg: function(c, d) {
            for (var f in c) if (c[f] == d) return ! 0;
            return ! 1
        },
        iepngFix: function(c, d) {
            if (z.h.Og) {
                this.eh || (this.eh = [], this.Wb = !1);
                var f = this.eh,
                g = this;
                "img" === d.tagName.toLowerCase() && f.push(d);
                var h = function() {
                    for (var c; f.length;) c = f.shift(),
                    window.DD_belatedPNG.fixPng(c);
                    g.Wb = !0
                };
                window.DD_belatedPNG && this.Wb ? setTimeout(function() {
                    h()
                },
                100) : this.Wb || c.plugin(["AMap.FixPng"], 
                h)
            }
        },
        qe: function(c, d) {
            return Number(Number(c).toFixed(d || 0))
        },
        oa: function(c, d) {
            c.a = z.extend({},
            c.a, d);
            return c.a
        },
        $k: function(c) {
            var d = [],
            f;
            for (f in c) c.hasOwnProperty(f) && d.push(f + "=" + c[f]);
            return "?" + d[$join]("&")
        },
        Ac: function() {
            return ! 1
        },
        Jg: function() {
            return (new Date).getTime()
        },
        N: function(c, d) {
            return (c || "") + Math.round(Math.random() * Math.pow(10, d || 6))
        },
        kb: function() {
            var c = 0;
            return function(d) {
                d._amap_id = d._amap_id || ++c;
                return d._amap_id
            }
        } (),
        jd: "",
        Ug: function(c, d, f) {
            var g,
            h;
            return function l() {
                var m = arguments;
                g ? h = !0: (g = !0, setTimeout(function() {
                    g = !1;
                    h && (l.apply(f, m), h = !1)
                },
                d), c.apply(f, m))
            }
        },
        cl: function(c) {
            if ("object" != typeof c) return ! 1;
            for (var d in c) return ! 1;
            return ! 0
        }
    };
    (function() {
        function c(c) {
            var d,
            f,
            g = ["webkit", "moz", "o", "ms"];
            for (d = 0; d < g.length && !f; d++) f = window[g[d] + c];
            return f
        }
        function d(c) {
            var d = +new Date,
            g = Math.max(0, 16 - (d - f));
            f = d + g;
            return window.setTimeout(c, g)
        }
        var f = 0,
        g = window.requestAnimationFrame || c("RequestAnimationFrame") || d,
        h = window.cancelAnimationFrame || c("CancelAnimationFrame") || c("CancelRequestAnimationFrame") || 
        function(c) {
            window.clearTimeout(c)
        };
        z.e.wd = function(c, f, h, n) {
            c = z.e.bind(c, f);
            if (h && g === d) c();
            else return g.call(window, c, n)
        };
        z.e.vc = function(c) {
            c && 
            h.call(window, c)
        }
    })();
    z.ac = {
        fh: function(c, d, f) {
            for (var g = {
                Da: Number.MAX_VALUE
            },
            h = 0; h < c.length - 1; h++) {
                var k = z.ac.Ge([c[h], c[h + 1]], d);
                k.Da < g.Da && (g = z.extend(new z.r(k.i, k.f), {
                    Da: k.Da,
                    index: h
                }))
            }
            return Number(g.Z(d) / f)
        },
        Ge: function(c, d) {
            var f = 0,
            g = 0,
            f = c[1].i - c[0].i,
            g = c[1].f - c[0].f,
            h = -(c[0].f - d.f) * g - (c[0].i - d.i) * f,
            k;
            0 >= h ? (f = c[0].i, g = c[0].f) : h >= (k = f * f + g * g) ? (f = c[1].i, g = c[1].f) : (f = c[0].i + h * f / k, g = c[0].f + h * g / k);
            return z.extend(new z.r(f, g), {
                Da: Math.pow(d.i - f, 2) + Math.pow(d.f - g, 2)
            })
        }
    };
    z.Gd = z.F.extend({
        ka: z.D,
        ia: function(c) {
            this.a.map = c
        },
        fl: function() {
            this.a.map = null
        },
        Bb: function(c) {
            var d = this.a.map;
            d !== c && (d && d.ud(this), c && c.Ob(this));
            return this
        }
    });
    z.Gd.ca({
        Bb: "setMap"
    });
    z.fa = z.Gd.extend({
        a: {
            tileSize: 256,
            tileUrl: z.o.Fe,
            errorUrl: z.e.jd,
            unloadInvisibleTiles: z.h.Xg,
            zIndex: 1,
            opacity: 1,
            visibility: 1,
            zooms: [3, 18],
            zoomOffset: 0
        },
        t: function(c) {
            z.e.oa(this, c);
            this.Ah();
            this.zh();
            this.a.map && this.a.map.Ob(this)
        },
        Ah: function() {
            z.h.ba && this.a.tileUrl == z.o.Fe && (this.a.tileUrl = z.o.mh)
        },
        zh: function() {
            var c = this.a;
            c.detectRetina && (z.h.Wj && 0 < c.zooms[0]) && (c.tileSize = Math.floor(c.tileSize / 2), c.zoomOffset++, c.zooms[0]--, c.zooms[1]--, c.tileUrl == z.o.Fe && (c.tileUrl = z.o.mh))
        },
        Qh: function(c, 
        d, f) {
            var g = this.a.tileUrl,
            h;
            if (h = g.match(/\{.*\}/)) var k = h.toString().replace("{", "").replace("}", ""),
            k = k.split(","),
            k = k[Math.abs(c + d) % k.length],
            g = g.replace(h, k);
            return g.replace("[x]", c).replace("[y]", d).replace("[z]", f)
        },
        Ig: function(c, d, f) {
            var g = this.a.getTileUrl;
            return "function" == typeof g ? g(c, d, f) : this.Qh(c, d, f)
        },
        jk: function(c, d) {
            this.a.tileUrl = c;
            d || this.H();
            return this
        },
        ia: function(c) {
            this.a.map = c;
            this.sa = c.a.continuousZoomEnable && z.h.fb;
            this.ya();
            this.Af();
            c.d("viewreset", this.ja, this).d("moveend", 
            this.H, this);
            this.sa && c.d("zoomanim", this.tb, this).d("zoomend", this.wb, this);
            this.ja();
            this.H()
        },
        Ea: function() {
            this.l && (this.l.parentNode.removeChild(this.l), this.a.map.m("viewreset", this.ja, this).m("moveend", this.H, this).m("zoomanim", this.tb, this).m("zoomend", this.wb, this), this.l = null, this.a.map = null)
        },
        ya: function() {
            this.l = z.b.create("div", this.a.map.j.qd, "amap-layer");
            this.ie();
            this.tg();
            this.sa ? (this.Gb = z.b.create("div", this.l, "amap-tile-container amap-zoom-animated"), this.Ba = z.b.create("div", 
            this.l, "amap-tile-container amap-zoom-animated")) : this.Ba = this.l;
            1 > this.a.opacity && this.qg()
        },
        Af: function() {
            if (!this.bd) {
                var c = this.bd = z.b.create("img", null, "amap-tile");
                c.style.width = c.style.height = this.a.tileSize + "px";
                c.Uk = "no"
            }
        },
        tg: function() {
            var c = this.a.zIndex;
            this.l && void 0 !== c && (this.l.style.zIndex = c)
        },
        qg: function() {
            var c,
            d = this.L,
            f = this.a.opacity;
            if (z.h.Vb) for (c in d) z.b.Kc(d[c], f);
            else z.b.Kc(this.l, f);
            if (z.h.ph) for (c in d) d[c].style.webkitTransform += " translate(0,0)"
        },
        ie: function() { (this.a.visibility ? 
            z.b.La: z.b.ua)(this.l, "amap-hide")
        },
        ja: function(c) {
            var d = this.L,
            f;
            for (f in d) this.c("tileunload", {
                Bd: d[f]
            });
            this.L = {};
            this.Lb = 0;
            this.a.reuseTiles && (this.dd = []);
            this.Ba.innerHTML = "";
            this.sa && (c && c.od) && this.yg()
        },
        H: function() {
            var c = this.a.map;
            if (c) {
                var d = c.C(),
                f = this.a.zooms;
                d > f[1] || d < f[0] || (c = c.md(), d = this.a.tileSize, tileBounds = new z.Na(c.s.R(d).floor(), c.u.R(d).floor()), this.cc(tileBounds), (this.a.reuseTiles || this.a.unloadInvisibleTiles) && this.kc(tileBounds))
            }
        },
        cc: function(c) {
            for (var d = [], f = c.va(), 
            g = c.s.y; g <= c.u.y; g++) for (var h = c.s.x; h <= c.u.x; h++) this.L[h + "," + g] || d.push(new z.k(h, g));
            g = d.length;
            if (0 !== g) {
                d.sort(function(c, d) {
                    return c.Z(f) - d.Z(f)
                });
                c = document.createDocumentFragment();
                this.Lb || this.c("loading");
                this.Lb += g;
                for (g = 0; g < d.length; g++) this.yh(d[g], c);
                this.Ba.appendChild(c)
            }
        },
        yh: function(c, d) {
            var f = this.Uh(c),
            g = this.Th();
            z.b.B(g, f, !0);
            this.L[c.x + "," + c.y] = g;
            this.Of(g, c);
            g.parentNode !== this.Ba && d.appendChild(g)
        },
        Uh: function(c) {
            var d = this.a.map.bb;
            return c.S(this.a.tileSize).q(d)
        },
        Th: function() {
            return this.a.reuseTiles && 
            0 < this.dd.length ? this.dd.pop() : this.Hh()
        },
        Lk: e(),
        Hh: function() {
            var c = this.bd.cloneNode(!1);
            c.onselectstart = c.onmousemove = z.e.Ac;
            z.h.Vb && void 0 !== this.a.opacity && z.b.Kc(c, this.a.opacity);
            return c
        },
        Of: function(c, d) {
            c.Pd = this;
            c.onload = this.lg;
            c.onerror = this.zi;
            this.mf(d);
            c.src = this.Ig(d.x, d.y, d.z)
        },
        lg: function() {
            var c = this.Pd;
            this.src !== z.e.jd && (z.b.ua(this, "amap-tile-loaded"), c.c("tileload", {
                Bd: this,
                url: this.src
            }));
            z.h.Og && c.a.transparency && z.e.iepngFix(c.a.map, this);
            c.kg()
        },
        zi: function() {
            this.onerror = 
            this.onload = z.e.Ac;
            var c = this.Pd;
            c.c("tileerror", {
                Bd: this,
                url: this.src
            });
            var d = c.a.errorUrl;
            d && (this.src = d);
            c.kg()
        },
        kg: function() {
            this.Lb--;
            this.Lb || (this.c("complete"), this.sa && (clearTimeout(this.wf), this.wf = setTimeout(z.e.bind(this.yg, this), 500)))
        },
        mf: function(c) {
            var d = this.Wh();
            this.a.continuousWorld || this.a.noWrap || (c.x = (c.x % d + d) % d);
            c.z = this.Jf()
        },
        Wh: function() {
            return Math.pow(2, this.Jf())
        },
        Jf: function() {
            return this.a.map.C() + this.a.zoomOffset
        },
        kc: function(c) {
            var d,
            f,
            g;
            for (g in this.L) d = g.split(","),
            f = parseInt(d[0], 10),
            d = parseInt(d[1], 10),
            (f < c.s.x || f > c.u.x || d < c.s.y || d > c.u.y) && this.fg(g)
        },
        fg: function(c) {
            var d = this.L[c];
            this.c("tileunload", {
                Bd: d,
                url: d.src
            });
            this.a.reuseTiles ? (z.b.La(d, "amap-tile-loaded"), this.dd.push(d)) : d.parentNode === this.Ba && this.Ba.removeChild(d);
            z.h.Ni || (d.onload = null, d.src = z.e.jd);
            delete this.L[c]
        },
        Kc: function(c) {
            this.a.opacity = c;
            this.qg(c);
            return this
        },
        show: function() {
            this.a.visibility = 1;
            this.ie();
            return this
        },
        Fc: function() {
            this.a.visibility = 0;
            this.ie();
            return this
        },
        qj: function() {
            var c = 
            [],
            d;
            for (d in this.L) c.push(d);
            return c
        },
        reload: function() {
            this.a.map && (this.ja({
                od: !0
            }), this.H());
            return this
        },
        ye: function() {
            return this.a.zooms
        },
        Le: function(c) {
            this.a.zIndex = c;
            this.tg();
            return this
        },
        tb: function() {
            this.Oa && this.Oa.apply(this, arguments)
        },
        wb: function() {
            this.Ef && this.Ef.apply(this, arguments)
        },
        yg: function() {
            this.vf && this.vf.apply(this, arguments)
        }
    });
    z.fa.ca({
        Ig: "getTileUrl",
        jk: "setTileUrl",
        Kc: "setOpacity",
        show: "show",
        Fc: "hide",
        qj: "getTiles",
        reload: "reload",
        ye: "getZooms",
        Le: "setzIndex"
    });
    z.fa.vh = z.fa.extend({
        a: {
            tileUrl: z.o.Xj,
            zIndex: 2
        }
    });
    z.fa.xh = z.fa.extend({
        a: {
            tileUrl: "",
            getTileUrl: function(c, d, f) {
                return "http://tm.mapabc.com/trafficengine/mapabc/traffictile?v=1.0&;t=1&zoom=" + (17 - f) + "&x=" + c + "&y=" + d
            },
            zIndex: 5
        }
    });
    z.fa.uh = z.fa.extend({
        a: {
            transparency: !0,
            tileUrl: "http://webst0{1,2,3,4}.is.autonavi.com/appmaptile?style=8&x=[x]&y=[y]&z=[z]",
            zIndex: 3
        }
    });
    z.fa.ra = z.fa.extend({
        Af: function() {
            if (!this.bd) {
                var c = this.bd = z.b.create("canvas", null, "amap-tile");
                c.width = c.height = this.a.tileSize
            }
        },
        Of: function(c, d) {
            c.Pd = this;
            this.mf(d);
            this.c("canvastileload", {
                tile: c,
                x: d.x,
                y: d.y,
                z: d.z
            });
            this.lg.call(c)
        },
        fg: function(c) {
            var d = this.L[c];
            this.c("canvastileunload", {
                tile: d,
                key: c
            });
            this.a.reuseTiles ? (z.b.La(d, "amap-tile-loaded"), this.dd.push(d)) : d.parentNode === this.Ba && this.Ba.removeChild(d);
            delete this.L[c]
        }
    });
    z.ra = z.Gd.extend({
        a: {
            zIndex: 2
        },
        t: function(c) {
            z.e.oa(this, c); (c = this.a.map) && c.Ob(this);
            z.Ta.load(["util", "canvas"], z.e.bind(function() {
                this.Yd()
            },
            this), !1);
            return this
        }
    });
    z.ra.Qe = z.ra.extend({
        a: {
            zIndex: 1,
            zooms: [17, 18]
        }
    });
    z.ra.jf = z.ra.extend({
        a: {
            zIndex: 1,
            zooms: [3, 18],
            buildings: !0,
            traffic: !1
        }
    });
    z.Ga = z.F.extend({
        ka: z.D,
        a: {
            lang: "en-us",
            center: new z.r(116.397771, 39.923581),
            level: 13,
            zooms: [3, 18],
            crs: null,
            zoomEnable: !0,
            jogEnable: !0,
            continuousZoomEnable: z.b.xa && !z.h.fd && !z.h.Yg,
            defaultLayer: "default",
            resizeEnable: !1,
            dragEnable: !0,
            doubleClickZoom: !0,
            keyboardEnable: !0,
            scrollWheel: !0,
            mouseEvents: !0,
            contextMenu: !0,
            touchZoom: z.h.ba && !z.h.fd
        },
        t: function(c, d) {
            var f = z.e.Jg();
            this.ya(c);
            this.ei();
            this.$h(d);
            this.Zh();
            this.Yh();
            this.Gh(f)
        },
        ya: function(c) {
            c = this.l = z.b.get(c);
            if (!c) throw "Can not get the map container!";
            if (c.nf) throw "Map containers have been used!";
            c.nf = !0
        },
        ei: function() {
            var c = this.l;
            z.b.ua(c, "amap-container");
            var d = {};
            d.A = z.b.create("div", c, "amap-maps");
            d.qd = z.b.create("div", d.A, "amap-layers");
            d.Fa = z.b.create("div", d.A, "amap-statics");
            d.td = z.b.create("div", d.A, "amap-overlays");
            d.controls = z.b.create("div", c, "amap-controls");
            d.Wg = z.b.create("img", c, "amap-logo");
            d.Wg.src = z.o.Qb + "/theme/v1.2/autonavi.png";
            d.Ag = z.b.create("div", c, "amap-copyright");
            d.Ag.innerHTML = "\u5730\u56fe\u6570\u636e \u00a92013 AutoNavi";
            this.j = d
        },
        Bi: function() {
            var c = this.j,
            d = this.l;
            d.removeChild(c.Ag);
            d.removeChild(c.Wg);
            d.removeChild(c.controls);
            c.A.removeChild(c.td);
            c.A.removeChild(c.Fa);
            c.A.removeChild(c.qd);
            d.removeChild(c.A);
            delete this.j;
            z.b.La(d, "amap-container")
        },
        Zk: function() {
            var c = this.j;
            return {
                map: c.A,
                layers: c.qd,
                statics: c.Fa,
                overlays: c.td,
                controls: c.controls
            }
        },
        $h: function(c) {
            z.e.oa(this, c);
            z.b.B(this.j.A, new z.k(0, 0));
            var d = this.a.crs;
            this.Zd = "EPSG4326" == d ? z.la.rh: "EPSG3395" == d ? z.la.qh: z.la.Te;
            c && c.center && c.level || (d = 
            z.o.ub, d = this.bj(new z.Ma(d[0], d[1], d[2], d[3])), this.a.center = d && d[0] || c.center, this.a.level = d && d[1] || c.level);
            this.bb = this.Od(this.a.center)
        },
        bj: function(c) {
            var d = this.K(),
            f = c.va();
            if (c && d && f) {
                for (var g = this.a.zooms[1]; g > this.a.zooms[0]; g--) {
                    var h = this.O(c.aa, g),
                    k = this.O(c.$, g);
                    if (Math.abs(k.x - h.x) < d.width && Math.abs(h.y - k.y) < d.height) break
                }
                return [f, g]
            }
            return null
        },
        Zh: function() {
            var c = this.a.defaultLayer;
            "default" == c && (c = this.a.defaultLayer = new z.fa);
            c ? (c.d("complete", 
            function() {
                this.c("complete")
            },
            this, !0), this.Ob(c)) : this.c("complete")
        },
        Ob: function(c) {
            var d = z.e.kb(c);
            this.na = this.na || {};
            this.na[d] || (this.na[d] = c, c.ia(this));
            return this
        },
        ud: function(c) {
            var d = z.e.kb(c);
            this.na && this.na[d] && (c.Ea(), delete this.na[d]);
            return this
        },
        Ri: function() {
            for (var c in this.na) this.ud(this.na[c]);
            return this
        },
        cj: function() {
            return this.a.defaultLayer
        },
        ak: function(c) {
            var d = this.a.defaultLayer;
            d !== c && (d && this.ud(d), c && this.Ob(c), this.a.defaultLayer = c)
        },
        ed: function(c) {
            var d = z.e.kb(c);
            this.w = this.w || {};
            this.w[d] || 
            (this.w[d] = c, c.ia(this))
        },
        vd: function(c) {
            var d = z.e.kb(c);
            this.w && this.w[d] && (c.Ea(), delete this.w[d])
        },
        le: function() {
            for (var c in this.w) this.vd(this.w[c]);
            return this
        },
        Gi: function(c) {
            var d = z.e.kb(c);
            this.Za = this.Za || {};
            this.Za[d] || (this.Za[d] = c, (d = c.addTo) && d.call(c, this, this.j.controls))
        },
        hh: function(c) {
            var d = z.e.kb(c);
            if (this.Za && this.Za[d]) {
                var f = c.removeFrom;
                f && f.call(c);
                delete this.Za[d]
            }
        },
        Qi: function() {
            for (var c in this.Za) this.hh(this.Za[c]);
            return this
        },
        Gh: function(c) {
            c = ["v=" + z.o.version, 
            "k=" + z.o.key, "u=" + window.location.href, "t=" + (z.e.Jg() - c)];
            z.h.ba && c.push("s=" + this.K());
            new z.pa.mb(z.o.Qb + "/count?" + c.join("&"))
        },
        Vi: function() {
            this.Jh();
            this.Qi();
            this.le();
            this.Ri();
            this.Bi();
            this.l.nf = !1
        },
        al: x("bb"),
        ma: function() {
            return z.b.Ia(this.j.A)
        },
        O: function(c, d) {
            return this.Zd.Dj(c, d || this.C())
        },
        lb: function(c, d, f) {
            return this.Zd.Tj(c, d || this.C(), f)
        },
        se: function(c) {
            return c.q(this.bb, !0)
        },
        Ee: function(c) {
            return c.add(this.bb, !0)
        },
        Gc: function(c) {
            return c.add(this.ma(), !0)
        },
        xc: function(c) {
            return c.q(this.ma(), 
            !0)
        },
        da: function(c) {
            return this.se(this.O(c).round())
        },
        Xb: function(c) {
            return this.lb(this.Ee(c))
        },
        Yb: function(c) {
            return this.Gc(this.da(c))
        },
        gb: function(c) {
            return this.Xb(this.xc(c))
        },
        kd: function(c) {
            return this.Gc(this.se(c))
        },
        Rk: function(c) {
            return this.Ee(this.xc(c))
        },
        Ic: function(c) {
            return z.b.ld(c, this.l)
        },
        Jc: function(c) {
            return this.xc(this.Ic(c))
        },
        el: function(c) {
            return this.Xb(this.Jc(c))
        },
        Vh: function() {
            return this.bb.q(this.ma(), !0)
        },
        Od: function(c, d) {
            return this.O(c, d).q(this.K().ea().R(2), !0)
        },
        Nf: function(c, d, f) {
            f = this.Od(f, d).add(this.ma());
            return this.O(c, d).q(f, !0)
        },
        K: function() {
            if (!this.Sa || this.ee) this.Sa = z.b.Kg(this.l),
            this.ee = !1;
            return new z.Ya(this.Sa.width, this.Sa.height)
        },
        md: function() {
            var c = this.Vh();
            return new z.Na(c, c.add(this.K().ea()))
        },
        xb: function() {
            var c = this.K(),
            d = this.gb(new z.k(0, c.Cc())),
            c = this.gb(new z.k(c.Dc(), 0));
            return new z.Ma(d, c)
        },
        C: function() {
            return this.a.level
        },
        va: function() {
            return this.Xb(this.fc())
        },
        ye: function() {
            return this.a.zooms
        },
        fc: function() {
            return this.xc(this.K().ea().R(2))
        },
        Wc: function(c) {
            return Math.max(this.a.zooms[0], Math.min(this.a.zooms[1], c))
        },
        Ec: function(c) {
            var d = this.Zd;
            return d.scale(c) / d.scale(this.C())
        },
        Hg: function(c) {
            return this.C() + Math.log(c) / Math.LN2
        },
        Uc: function(c) {
            return this.da(c).q(this.fc(), !0)
        },
        ce: function(c, d, f, g) {
            d = this.Wc(d);
            var h = this.C() !== d;
            g || (this.c("movestart"), h && this.c("zoomstart"));
            this.a.level = d;
            this.bb = this.Od(c);
            f ? this.bb = this.bb.add(this.ma()) : z.b.B(this.j.A, new z.k(0, 0));
            c = !this.gi;
            this.gi = !0;
            c && this.c("load");
            this.c("viewreset", 
            {
                od: !f
            });
            this.c("move"); (h || g) && this.c("zoomend").c("zoomchange");
            this.c("moveend", {
                od: !f
            })
        },
        ib: function(c) {
            2 == arguments.length && ("number" == typeof arguments[0] && "number" == typeof arguments[1]) && (c = new z.k(arguments[0], arguments[1]));
            z.b.B(this.j.A, this.ma().q(c));
            return this.c("move").c("moveend")
        },
        Zb: function(c, d) {
            this.ce(c, d);
            return this
        },
        zd: function(c) {
            return this.Zb(this.va(), c)
        },
        Ke: function(c, d) {
            var f = this.Ec(d),
            g = this.K().ea().R(2),
            f = (c instanceof z.k ? c: this.Yb(c)).q(g).S(1 - 1 / f),
            g = this.gb(g.add(f));
            return this.Zb(g, d)
        },
        pj: function() {
            for (var c = "dragEnable zoomEnable keyboardEnable jogEnable continuousZoomEnable doubleClickZoom scrollWheel resizeEnable".split(" "), d = {},
            f = 0; f < c.length; f++) d[c[f]] = this.a[c[f]];
            return d
        },
        xe: function(c) {
            return 6378137 * 2 * (c ? Math.cos(c.f * Math.PI / 180) : 1) * Math.PI / (256 * Math.pow(2, this.C()))
        },
        lj: function(c) {
            return this.xe() * (c || 96) / 0.0254
        },
        Ie: function(c) {
            return this.Zb(c, this.C())
        },
        Cd: function() {
            return this.zd(this.C() + 1)
        },
        Dd: function() {
            return this.zd(this.C() - 1)
        },
        kh: function(c, 
        d) {
            return this.Zb(d, c)
        },
        ih: function(c, d, f, g) {
            d = d ? Number(d) : 0;
            var h = this.a.zooms[1],
            k = this.K().ea();
            for (f && (k = k.q(f)); h > this.a.zooms[0]; h--) {
                f = this.O(c.aa, h);
                var l = this.O(c.$, h);
                if (Math.abs(l.x - f.x) < k.x && Math.abs(f.y - l.y) < k.y) break
            }
            this.Zb(c.va(), h + d, {
                reset: g
            });
            return c
        },
        ik: function(c) {
            var d = {},
            f;
            for (f in c) - 1 != "dragEnable,keyboardEnable,doubleClickZoom,scrollWheel,zoomEnable,jogEnable,continuousZoomEnable,resizeEnable".indexOf(f) && (d[f] = c[f]);
            z.e.oa(this, d);
            this.pg();
            return this
        },
        Pj: function(c) {
            return this.ib(this.fc().q(this.da(c)))
        },
        Je: function() {
            throw "Has not yet been achieved";
        },
        Si: function() {
            this.le();
            return this.zg()
        },
        zg: function() {
            this.gc && this.gc.close();
            return this
        },
        ck: function(c, d) {
            var f;
            if (c) ! c instanceof Array && (c = [c]);
            else for (f in c = [], this.w) c.push(this.w[f]);
            if (0 < c.length) {
                var g = new z.Ma(180, 90, -180, -90),
                h = !1;
                for (f = c.length - 1; 0 <= f; f--) {
                    var k = c[f];
                    k instanceof z.Wa ? (g.extend(k.Ia()), h = !0) : (k instanceof z.$b || k instanceof z.Db || k instanceof z.Cb) && g.qk(k.xb())
                }
                return this.ih(g, d, h ? new z.k(20, 68) : null)
            }
            return this.xb()
        },
        dh: function(c, d) {
            "string" == typeof c && (c = [c]);
            for (var f = 0; f < c.length; f++)"function" == typeof window[c[f]] && (c.splice(f, 1), f--);
            if (0 === c.length) return d(),
            this;
            f = new z.pa.mb(z.o.Qb + "/maps/plugin?v=" + z.o.version + "&key=" + z.o.key + "&cls=" + c.join(","));
            f.d("complete", 
            function() {
                d()
            });
            f.d("error", 
            function() {
                throw "Plugin service error!";
            });
            return this
        }
    });
    z.Ga.ca({
        va: "getCenter",
        C: "getZoom",
        ye: "getZooms",
        K: "getSize",
        xb: "getBounds",
        pj: "getStatus",
        xe: "getResolution",
        lj: "getScale",
        Ie: "setCenter",
        zd: "setZoom",
        Cd: "zoomIn",
        Dd: "zoomOut",
        kh: "setZoomAndCenter",
        ih: "setBounds",
        ik: "setStatus",
        Pj: "panTo",
        ib: "panBy",
        Si: "clearMap",
        zg: "clearInfoWindow",
        Vi: "destroy",
        ck: "setFitView",
        Gi: "addControl",
        hh: "removeControl",
        dh: "plugin",
        cj: "getDefaultLayer",
        ak: "setDefaultLayer",
        O: "project",
        lb: "unproject",
        gb: "containerToLngLat",
        Yb: "lngLatToContainer"
    });
    z.Ga.ca({
        O: "lnglatToPixel",
        lb: "pixelToLngLat",
        gb: "containTolnglat",
        Yb: "lnglatTocontainer"
    });
    z.Ka = {};
    z.Ga.W({
        Yh: function() {
            var c = ["map", z.h.ba ? "touch": "mouse", z.b.xa ? "css3anim": "timeranim"];
            z.h.sd && (c = c.concat(["ms", "mouse"]));
            z.Ta.load(c, z.e.bind(function() {
                var c = z.Ka;
                this.ta = {};
                for (var f in c) {
                    var g = new c[f](this);
                    this.ta[g.name] = g
                }
                this.pg()
            },
            this), !0)
        },
        pg: function() {
            if (this.j) {
                var c = this.a,
                d;
                for (d in this.ta) {
                    var f = this.ta[d];
                    c[d] ? f.enable() : f.disable()
                }
            }
        },
        Jh: function() {
            if (this.j) for (var c in this.ta) this.ta[c].disable()
        }
    });
    z.pa = {};
    z.pa.mb = z.F.extend({
        ka: z.D,
        a: {
            callback: "cbk",
            type: "json"
        },
        t: function(c, d) {
            z.e.oa(this, d);
            this.send(c)
        },
        send: function(c) {
            var d = z.b.create("script");
            d.type = "text/javascript";
            d.charset = "utf-8";
            var f = this;
            z.h.Vb ? d.onreadystatechange = function() {
                "loaded" != this.readyState && "complete" != this.readyState || f.c("complete")
            }: (d.onload = function() {
                f.c("complete")
            },
            d.onerror = function() {
                f.c("error", {
                    status: 0,
                    info: "service error",
                    url: c
                })
            });
            d.src = c;
            document.getElementsByTagName("head")[0].appendChild(d)
        }
    });
    z.pa.Ye = z.pa.mb.extend({
        send: function(c) {
            function d(c) {
                var d = arguments.callee,
                f = d.yc;
                f.c("complete", c);
                window[d.Mg] = null;
                delete z[d.Mg];
                document.getElementsByTagName("head")[0].removeChild(f.X)
            }
            var f = z.e.N("_", 5) + "_",
            g = z.b.create("script", document.getElementsByTagName("head")[0]);
            g.type = "text/javascript";
            var h = this;
            g.onerror = function() {
                h.c("error", {
                    status: 0,
                    info: "service error",
                    url: c
                })
            };
            d.Mg = f;
            d.yc = this;
            z[f] = d;
            g.src = c + "&" + this.a.callback + "=AMap." + f;
            this.X = g
        }
    });
    z.pa.XMLHttpRequest = z.pa.mb.extend({
        send: function(c) {
            var d = this.uk = new XMLHttpRequest,
            f = this;
            d.onload = function() {
                f.c("complete", d.response)
            };
            d.onerror = function() {
                f.c("error", d)
            };
            d.onloadstart = function() {
                f.c("start", d)
            };
            d.dl = function() {
                f.c("end", d)
            };
            d.onprogress = function(c) {
                f.c("progress", c)
            };
            d.timeout = 5E3;
            d.open("GET", c);
            d.responseType = this.a.type;
            d.send()
        },
        abort: function() {
            this.uk.abort()
        }
    });
    z.Xe = z.F.extend({
        a: {
            size: new z.Ya(36, 36),
            imageOffset: new z.k(0, 0),
            image: z.o.Qb + "/theme/v1.2/0.png",
            anchor: new z.k(12, 36)
        },
        t: function(c) {
            z.e.oa(this, c)
        },
        ia: function(c) {
            var d = this.a;
            c = z.b.create("div", c, "amap-icon");
            c.style.width = d.size.width + "px";
            c.style.height = d.size.height + "px";
            c = z.b.create("img", c);
            c.src = d.image;
            z.b.B(c, d.imageOffset)
        }
    });
    z.Wa = z.F.extend({
        ka: z.D,
        a: {
            cursor: "default",
            visible: !0,
            zIndex: 1,
            autoRotation: !0
        },
        t: function(c) {
            z.e.oa(this, c); (c = this.a.map) && c.ed(this);
            z.Ta.load("marker", z.e.bind(function() {
                this.Yd()
            },
            this), !1);
            return this
        },
        Bb: function(c) {
            var d = this.a.map;
            d !== c && (d && d.vd(this), c && c.ed(this));
            return this
        },
        Ia: function() {
            return this.a.position
        },
        ia: function(c) {
            this.a.map = c
        },
        Ea: function() {
            this.a.map = null
        },
        setPosition: function(c) {
            this.a.position = c;
            return this
        },
        setzIndex: function(c) {
            this.a.zIndex = c;
            return this
        },
        setIcon: function(c) {
            this.a.icon = 
            c;
            return this
        },
        getIcon: function() {
            return this.a.icon
        },
        setDraggable: function(c) {
            this.a.draggable = c;
            return this
        },
        getDraggable: function() {
            return this.a.draggable
        },
        show: function() {
            this.a.visible = !0;
            return this
        },
        hide: function() {
            this.a.visible = !1;
            return this
        },
        setCursor: function(c) {
            this.a.cursor = c;
            return this
        },
        getCursor: function() {
            return this.a.cursor
        },
        setContent: function(c) {
            this.a.content = c;
            return this
        },
        te: function() {
            return this.a.content
        },
        moveAlong: function(c, d, f, g) {
            this.d("load", 
            function() {
                this.$g(c, 
                d, f, g)
            },
            this);
            return this
        },
        moveTo: function(c) {
            this.a.lnglat = c;
            return this
        },
        stopMove: function() {
            return this
        },
        setRotation: function(c) {
            this.a.angle = c;
            return this
        }
    });
    z.Wa.ca({
        Bb: "setMap",
        Ia: "getPosition",
        Yk: "getIcon",
        Xk: "getDraggable",
        te: "getContent"
    });
    z.Fd = z.F.extend({
        ka: z.D,
        a: {
            content: "",
            autoMove: !0,
            size: null,
            offset: new z.k(0, 0),
            position: new z.r(116.397771, 39.923581),
            showCloseBtn: !0,
            showShadow: !0,
            isCustom: !1,
            zoomAnimation: !0
        },
        t: function(c) {
            c = c || {};
            z.e.oa(this, c);
            this.sa = z.h.fb && this.a.zoomAnimation;
            var d = this;
            z.Ta.load("infowindow", 
            function() {
                d.map && d.open(d.map, d.a.position)
            });
            return this
        },
        open: function(c, d) {
            this.map = c;
            this.a.position = d;
            this.Hb = !0;
            return this
        },
        close: function() {
            this.map = null;
            this.a.position = null;
            this.Hb = !1
        },
        ej: function() {
            return !! this.Hb
        },
        Ab: function(c) {
            this.a.content = c;
            return this
        },
        te: function() {
            return this.a.content
        },
        jh: function(c) {
            this.a.size = c;
            return this
        },
        B: function(c) {
            this.a.position = c;
            return this
        }
    });
    z.Fd.ca({
        open: "open",
        close: "close",
        ej: "getIsOpen",
        Ab: "setContent",
        te: "getContent",
        jh: "setSize",
        B: "setPosition"
    });
    z.Db = z.F.extend({
        ka: z.D,
        a: {
            visible: !0,
            zIndex: 1,
            strokeColor: "#006600",
            strokeOpacity: 0.9,
            strokeWeight: 3,
            strokeStyle: "solid",
            strokeDasharray: [10, 5],
            path: []
        },
        t: function(c) {
            z.e.oa(this, c); (c = this.a.map) && c.ed(this)
        },
        ia: function(c) {
            this.a.map = c;
            c.d("viewreset", this.ja, this);
            z.Ta.load("graph", z.e.bind(function() {
                var c = this.a.map;
                c && (c.J || (c.j.J = z.b.create("div", c.j.td, "amap-graph"), c.J = new z.Ua(c)), c.J.ia(this), this.J = c.J)
            },
            this), !0)
        },
        Ea: function() {
            this.a.map.m("viewreset", this.ja, this);
            this.a.map = null;
            this.J && (this.J.Ea(this), this.J = null)
        },
        ja: function() {
            this.J && this.J.c("path", this)
        },
        fj: function() {
            for (var c = this.a.path, d = 0, f = 0; f < c.length - 1; f++) d += c[f].Z(c[f + 1]);
            return d.toFixed(2)
        },
        xb: function() {
            for (var c = this.a.path, d = new z.Ma(180, 90, -180, -90), f = c.length - 1; 0 <= f; f--) d.extend(c[f]);
            return d
        },
        gk: function(c) {
            this.a.path = [].concat(c);
            this.J && (this.J.c("path", this), this.c("change"));
            return this
        },
        jj: function() {
            return this.a.path
        },
        oa: function(c) {
            c.map && this.Bb(c.map);
            z.e.oa(this, c);
            this.J && (this.J.c("path", 
            this), this.J.c("style", this), this.c("change"));
            return this
        },
        ij: x("a"),
        Fc: function() {
            this.a.visible = !1;
            this.J && (this.J.c("style", this), this.c("hide"));
            return this
        },
        show: function() {
            this.a.visible = !0;
            this.J && (this.J.c("style", this), this.c("show"));
            return this
        },
        Bb: function(c) {
            z.Wa.prototype.Bb.apply(this, arguments)
        }
    });
    z.Db.ca({
        Bb: "setMap",
        show: "show",
        Fc: "hide",
        ij: "getOptions",
        oa: "setOptions",
        jj: "getPath",
        gk: "setPath",
        xb: "getBounds",
        fj: "getLength"
    });
    z.Cb = z.Db.extend({
        a: {
            fillColor: "#F8F8F8",
            fillOpacity: 0.8
        },
        aj: function() {
            var c = 6378137 * Math.PI / 180,
            d = 0,
            f = this.a.path,
            g = f.length;
            if (3 > g) return 0;
            for (i = 0; i < g - 1; i++) var h = f[i],
            k = f[i + 1],
            d = d + (h.i * c * Math.cos(h.f * Math.PI / 180) * k.f * c - k.i * c * Math.cos(k.f * Math.PI / 180) * h.f * c);
            g = f[i];
            f = f[0];
            d += g.i * c * Math.cos(g.f * Math.PI / 180) * f.f * c - f.i * c * Math.cos(f.f * Math.PI / 180) * g.f * c;
            return Number((0.5 * Math.abs(d)).toFixed(2))
        }
    });
    z.Cb.ca({
        aj: "getArea"
    });
    z.$b = z.Cb.extend({
        a: {
            center: {},
            radius: 1E3
        },
        Ie: function(c) {
            this.a.center = c;
            this.J.c("path", this);
            this.c("change");
            return this
        },
        va: function() {
            return this.a.center
        },
        hk: function(c) {
            this.a.radius = c;
            this.J.c("path", this);
            this.c("change");
            return this
        },
        kj: function() {
            return this.a.radius
        },
        xb: function() {
            var c = this.a.center,
            d = this.a.radius,
            f = c.offset( - d, d),
            c = c.offset(d, -d);
            return new z.Bounds(f, c)
        }
    });
    z.$b.ca({
        Ie: "setCenter",
        va: "getCenter",
        kj: "getRadius",
        hk: "setRadius",
        xb: "getBounds"
    });
    z.Ed = z.F.extend({
        ka: z.D,
        a: {
            content: null,
            position: null
        },
        t: function(c) {
            c = c || {};
            z.e.oa(this, c);
            this.pd = [];
            var d = this;
            z.Ta.load("contextmenu", 
            function() {
                d.map && d.open(d.map, d.a.position)
            });
            return this
        },
        open: function(c, d) {
            this.map = c;
            this.a.position = d;
            return this
        },
        close: function() {
            this.map = null;
            this.a.position = null;
            return this
        },
        Ii: function(c, d, f, g) {
            if (!c || !d) return ! 1;
            this.pd.push({
                text: c,
                Tb: d,
                lh: f || 0,
                split: g
            });
            return this
        },
        removeItem: function(c, d) {
            if (!c || !d) return ! 1;
            for (var f = this.pd, g = 0; g < f.length; g++) f[g].text == 
            c && f[g].Tb == d && this.pd.splice(g, 1);
            return this
        },
        Ab: function(c) {
            this.a.content = c;
            return this
        }
    });
    z.Ed.ca({
        removeItem: "removeItem",
        Ii: "addItem",
        Ab: "setContent",
        close: "close",
        open: "open"
    });
    z.nb = z.F.extend({
        t: function(c) {
            z.e.oa(this, c);
            this.T = [];
            for (var d in this.a) this.a[d] && this.T.push(d + "=" + encodeURI(this.a[d]));
            this.Q = [];
            c = ["service"];
            c.push("stringutil");
            z.Ta.load(c, z.e.bind(function() {
                for (; 0 < this.Q.length;) {
                    var c = this.Q.shift();
                    this[c.V].apply(this, c.Y)
                }
            },
            this));
            z.MAjaxResult = z.MAjaxResult || {}
        },
        U: function(c, d, f) {
            var g;
            z.Conf && z.Conf.network && (g = this.ii(), c += "&uniqid=" + g);
            c += "&ia=1&key=" + z.o.key;
            c = new z.pa.mb(c);
            c.d("complete", 
            function() {
                g && (z.MAjaxResult[f].uniqid = g);
                d(z.MAjaxResult[f]);
                z.MAjaxResult[f] = null
            });
            c.d("error", 
            function() {
                throw "Service Request Error";
            })
        },
        ii: function() {
            for (var c = "", d = 1; 32 >= d; d++) {
                var f = Math.floor(16 * Math.random()).toString(16),
                c = c + f;
                if (8 == d || 12 == d || 16 == d || 20 == d) c += "-"
            }
            return c
        }
    });
    z.df = z.nb.extend({
        M: z.o.zb + "/gss/simple?",
        a: {
            encode: "utf-8",
            srctype: "",
            type: "",
            number: 10,
            batch: 1,
            range: 3E3,
            ext: "",
            resType: "json",
            retvalue: 1,
            sort: 0,
            regionType: ""
        },
        byKeywords: function(c, d, f) {
            this.Q.push({
                V: "byKeywords",
                Y: arguments
            })
        },
        byCenKeywords: function(c, d, f, g) {
            this.Q.push({
                V: "byCenKeywords",
                Y: arguments
            })
        },
        byCenPoi: function(c, d, f) {
            this.Q.push({
                V: "byCenPoi",
                Y: arguments
            })
        },
        byPguid: function(c, d) {
            this.Q.push({
                V: "byPguid",
                Y: arguments
            })
        },
        byRegion: function(c, d, f) {
            this.Q.push({
                V: "byRegion",
                Y: arguments
            })
        },
        inputPrompt: function(c, d, f) {
            this.Q.push({
                V: "inputPrompt",
                Y: arguments
            })
        }
    });
    z.Ue = z.nb.extend({
        M: z.o.zb + "/geocode/simple?",
        ri: z.o.zb + "/rgeocode/simple?",
        a: {
            resType: "json",
            encode: "utf-8",
            range: 3E3,
            roadnum: 10,
            crossnum: 3,
            poinum: 10,
            retvalue: 1
        },
        geocode: function(c, d) {
            this.Q.push({
                V: "geocode",
                Y: arguments
            })
        },
        regeocode: function(c, d) {
            this.Q.push({
                V: "regeocode",
                Y: arguments
            })
        }
    });
    z.cf = z.nb.extend({
        M: z.o.zb + "/gss/simple?",
        a: {
            encode: "utf-8",
            srctype: "",
            type: "",
            number: 10,
            batch: 1,
            range: 3E3,
            ext: "",
            resType: "json",
            retvalue: 1
        },
        byProvince: function(c) {
            this.Q.push({
                V: "byProvince",
                Y: arguments
            })
        },
        byCity: function(c, d) {
            this.Q.push({
                V: "byCity",
                Y: arguments
            })
        },
        byDistrict: function(c, d, f) {
            this.Q.push({
                V: "byDistrict",
                Y: arguments
            })
        }
    });
    z.Re = z.nb.extend({
        M: z.o.zb + "/bus/simple?",
        a: {
            encode: "utf-8",
            resType: "json",
            per: "",
            batch: 1,
            type: "",
            number: 10,
            retvalue: 1
        },
        byBusId: function(c, d, f) {
            this.Q.push({
                V: "byBusId",
                Y: arguments
            })
        },
        byBusName: function(c, d, f) {
            this.Q.push({
                V: "byBusName",
                Y: arguments
            })
        },
        byBusStation: function(c, d, f) {
            this.Q.push({
                V: "byBusStation",
                Y: arguments
            })
        },
        byTwoPoi: function(c, d, f) {
            this.Q.push({
                V: "byTwoPoi",
                Y: arguments
            })
        }
    });
    z.ff = z.nb.extend({
        M: z.o.zb + "/gss/simple?",
        a: {
            encode: "utf-8",
            resType: "json",
            ext: "",
            batch: 1,
            number: 10,
            retvalue: 1
        },
        roadInfoSearchByRoadName: function(c, d, f) {
            this.Q.push({
                V: "roadInfoSearchByRoadName",
                Y: arguments
            })
        },
        roadCrossSearchByRoadName: function(c, d, f) {
            this.Q.push({
                V: "roadCrossSearchByRoadName",
                Y: arguments
            })
        },
        roadCrossSearchByRoadNames: function(c, d, f, g) {
            this.Q.push({
                V: "roadCrossSearchByRoadNames",
                Y: arguments
            })
        }
    });
    z.gf = z.nb.extend({
        M: z.o.zb + "/route/simple?",
        a: {
            encode: "utf-8",
            resType: "json",
            routeType: 0,
            avoidType: "",
            avoidName: "",
            avoidRegion: [],
            per: 10,
            retvalue: 1
        },
        getNaviPath: function(c, d) {
            this.Q.push({
                V: "getNaviPath",
                Y: arguments
            })
        }
    });
    z.th = z.nb.extend({
        t: function() {
            z.MAjaxResult = z.MAjaxResult || {}
        },
        request: function(c, d) {
            var f = z.e.N();
            this.U(c + ("&rid=" + f), d, f)
        }
    });
    z.r.W({
        t: function() {
            var c = z.r.prototype.t;
            return function() {
                c.apply(this, arguments);
                this.lng = this.i;
                this.lat = this.f
            }
        } ()
    });
    z.Ma.W({
        t: function() {
            var c = z.Ma.prototype.t;
            return function() {
                c.apply(this, arguments);
                this.southwest = this.aa;
                this.northeast = this.$
            }
        } ()
    });
    z.Ga.W({
        getTiles: function(c) {
            c = c || 256;
            var d = this.md();
            c = new z.Na(d.s.R(c).floor(), d.u.R(c).floor());
            for (var d = [], f = c.s.y; f <= c.u.y; f++) for (var g = c.s.x; g <= c.u.x; g++) d.push(g + "," + f);
            return d
        },
        getDefaultCursor: function() {
            return z.b.hb(this.j.A, "cursor")
        },
        setCity: function(c, d) {
            d = d || e();
            var f = z.e.N();
            z.MAjaxResult = z.MAjaxResult || {};
            var g = this,
            h = new z.pa.mb("http://restapi.amap.com/gss/simple?sid=1026&resType=json&encode=utf-8&keyword=" + encodeURI(c) + "&key=" + z.o.key + "&rid=" + f);
            h.d("complete", 
            function() {
                if (z.MAjaxResult[f]) {
                    var c = 
                    z.MAjaxResult[f];
                    c.list && 0 < c.list.length && g.kh(c.list[0].level, new z.r(c.list[0].x, c.list[0].y));
                    d();
                    z.MAjaxResult[f] = null
                }
            });
            h.d("error", 
            function() {
                throw "Request city information error!";
            })
        },
        setDefaultCursor: function(c) {
            this.j.A.style.cursor = c
        },
        getLayer: function(c) {
            for (var d in this.na) if (this.na[d].a.id == c) return this.na[d]
        },
        removeLayer: function() {
            var c = z.Ga.prototype.ud;
            return function(d) {
                if ("string" === typeof d) for (var f in this.na) this.na[f].a.id === d && c.call(this, this.na[f]);
                else c.apply(this, 
                arguments)
            }
        } (),
        getOverlays: function(c) {
            var d,
            f;
            if (c instanceof Array) {
                var g = [];
                for (d = 0; d < c.length; d++) for (f in this.w) this.w[f].a.id == c[d] && g.push(this.w[f]);
                return g
            }
            for (f in this.w) if (this.w[f].a.id == c) return this.w[f];
            return ! 1
        },
        getOverlaysByType: function(c) {
            var d = [];
            if (c = {
                marker: z.Wa,
                polyline: z.Db,
                polygon: z.Cb,
                circle: z.$b
            } [c]) for (var f in this.w) this.w[f] instanceof c && d.push(this.w[f]);
            return d
        },
        updateOverlay: e(),
        addOverlays: function(c) {
            c = c instanceof Array ? c: [c];
            for (var d = 0; d < c.length; d++) this.ed(c[d])
        },
        removeOverlays: function(c) {
            c = c instanceof Array ? c: [c];
            for (var d = 0; d < c.length; d++) for (var f in this.w) this.w[f].a.id === c[d] && this.vd(this.w[f])
        },
        clearOverlaysByType: function(c) {
            if (c = {
                marker: z.Wa,
                polyline: z.Db,
                polygon: z.Cb,
                circle: z.$b
            } [c]) for (var d in this.w) this.w[d] instanceof c && this.vd(this.w[d])
        },
        setMouseTool: function(c, d) {
            var f = this;
            d = d || {};
            "panWheelZoom" == c && (c = "close", d = !1);
            if ( - 1 < "marker,polyline,circle,rule,rectZoomIn,rectZoomOut,polygon,rectangle,measureArea,panWheelZoom,close".indexOf(c)) if (this.Qd) this.Qd[c](d);
            else this.dh("AMap.MouseTool", 
            function() {
                f.Qd = new z.MouseTool(f);
                f.Qd[c](d)
            })
        },
        bind: function(c, d, f) {
            z.D.d.call(c, d, f, c)
        },
        unbind: function(c, d, f) {
            c.ha = z.D.ha;
            z.D.m.call(c, d, f)
        },
        trigger: function(c, d) {
            z.event.trigger.apply(this, arguments)
        },
        clearbind: e(),
        getLngLatByOffset: function(c, d, f) {
            return c.offset(d, f)
        },
        getDistance: function(c, d) {
            return c.Z(d)
        }
    });
    z.Ga.ca({
        Ob: "addLayer",
        le: "clearverlays"
    });
    z.Pixel = z.k;
    z.LngLat = z.r;
    z.Bounds = z.Ma;
    z.Size = z.Ya;
    z.Map = z.Ga;
    z.TileLayer = z.fa;
    z.TileLayer.Traffic = z.fa.xh;
    z.TileLayer.Satellite = z.fa.vh;
    z.TileLayer.RoadNet = z.fa.uh;
    z.CanvasLayer = z.wk;
    z.TileLayer.Canvas = z.fa.ra;
    z.Canvas = z.ra;
    z.Buildings = z.ra.Qe;
    z.Vector = z.ra.jf;
    z.Marker = z.Wa;
    z.Polyline = z.Db;
    z.Polygon = z.Cb;
    z.Circle = z.$b;
    z.InfoWindow = z.Fd;
    z.ContextMenu = z.Ed;
    z.Icon = z.Xe;
    z.Http = {
        Request: z.pa.mb,
        JSONP: z.pa.Ye,
        XMLHttpRequest: z.pa.XMLHttpRequest
    };
    z.PoiSearch = z.df;
    z.Geocoder = z.Ue;
    z.Partition = z.cf;
    z.BusSearch = z.Re;
    z.RoadSearch = z.ff;
    z.RouteSearch = z.gf;
    z.RestAPI = z.th;
    z.Conf = z.o;
    z.Util = z.e;
    window.AMap = z;
    var A = window[z.o.xg];
    A ? A() : document.body || setTimeout(function() {
        var c = window[z.o.xg];
        c && c()
    },
    100);

})()